| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229 | 1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
1
1
1
1
5
4
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
6
6
6
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
| System.register(['core-js', 'aurelia-metadata', './bindable-property', './children', './element-config', './view-strategy', './html-behavior'], function (_export) {
'use strict';
var core, Metadata, Decorators, BindableProperty, ChildObserver, ElementConfigResource, ViewStrategy, UseViewStrategy, NoViewStrategy, HtmlBehaviorResource;
_export('behavior', behavior);
_export('customElement', customElement);
_export('customAttribute', customAttribute);
_export('templateController', templateController);
_export('bindable', bindable);
_export('dynamicOptions', dynamicOptions);
_export('syncChildren', syncChildren);
_export('useShadowDOM', useShadowDOM);
_export('skipContentProcessing', skipContentProcessing);
_export('containerless', containerless);
_export('viewStrategy', viewStrategy);
_export('useView', useView);
_export('noView', noView);
_export('elementConfig', elementConfig);
function validateBehaviorName(name, type) {
if (/[A-Z]/.test(name)) {
throw new Error('\'' + name + '\' is not a valid ' + type + ' name. Upper-case letters are not allowed because the DOM is not case-sensitive.');
}
}
function behavior(override) {
return function (target) {
if (override instanceof HtmlBehaviorResource) {
Reflect.defineMetadata(Metadata.resource, override, target);
} else {
var resource = Metadata.getOrCreateOwn(Metadata.resource, HtmlBehaviorResource, target);
Object.assign(resource, override);
}
};
}
function customElement(name) {
validateBehaviorName(name, 'custom element');
return function (target) {
var resource = Metadata.getOrCreateOwn(Metadata.resource, HtmlBehaviorResource, target);
resource.elementName = name;
};
}
function customAttribute(name, defaultBindingMode) {
validateBehaviorName(name, 'custom attribute');
return function (target) {
var resource = Metadata.getOrCreateOwn(Metadata.resource, HtmlBehaviorResource, target);
resource.attributeName = name;
resource.attributeDefaultBindingMode = defaultBindingMode;
};
}
function templateController(target) {
var deco = function deco(target) {
var resource = Metadata.getOrCreateOwn(Metadata.resource, HtmlBehaviorResource, target);
resource.liftsContent = true;
};
return target ? deco(target) : deco;
}
function bindable(nameOrConfigOrTarget, key, descriptor) {
var deco = function deco(target, key, descriptor) {
var actualTarget = key ? target.constructor : target,
//is it on a property or a class?
resource = Metadata.getOrCreateOwn(Metadata.resource, HtmlBehaviorResource, actualTarget),
prop;
if (key) {
//is it on a property or a class?
nameOrConfigOrTarget = nameOrConfigOrTarget || {};
nameOrConfigOrTarget.name = key;
}
prop = new BindableProperty(nameOrConfigOrTarget);
return prop.registerWith(actualTarget, resource, descriptor);
};
if (!nameOrConfigOrTarget) {
//placed on property initializer with parens
return deco;
}
if (key) {
//placed on a property initializer without parens
var target = nameOrConfigOrTarget;
nameOrConfigOrTarget = null;
return deco(target, key, descriptor);
}
return deco; //placed on a class
}
function dynamicOptions(target) {
var deco = function deco(target) {
var resource = Metadata.getOrCreateOwn(Metadata.resource, HtmlBehaviorResource, target);
resource.hasDynamicOptions = true;
};
return target ? deco(target) : deco;
}
function syncChildren(property, changeHandler, selector) {
return function (target) {
var resource = Metadata.getOrCreateOwn(Metadata.resource, HtmlBehaviorResource, target);
resource.childExpression = new ChildObserver(property, changeHandler, selector);
};
}
function useShadowDOM(target) {
var deco = function deco(target) {
var resource = Metadata.getOrCreateOwn(Metadata.resource, HtmlBehaviorResource, target);
resource.targetShadowDOM = true;
};
return target ? deco(target) : deco;
}
function skipContentProcessing(target) {
var deco = function deco(target) {
var resource = Metadata.getOrCreateOwn(Metadata.resource, HtmlBehaviorResource, target);
resource.skipContentProcessing = true;
};
return target ? deco(target) : deco;
}
function containerless(target) {
var deco = function deco(target) {
var resource = Metadata.getOrCreateOwn(Metadata.resource, HtmlBehaviorResource, target);
resource.containerless = true;
};
return target ? deco(target) : deco;
}
function viewStrategy(strategy) {
return function (target) {
Reflect.defineMetadata(ViewStrategy.metadataKey, strategy, target);
};
}
function useView(path) {
return viewStrategy(new UseViewStrategy(path));
}
function noView(target) {
var deco = function deco(target) {
Reflect.defineMetadata(ViewStrategy.metadataKey, new NoViewStrategy(), target);
};
return target ? deco(target) : deco;
}
function elementConfig(target) {
var deco = function deco(target) {
Reflect.defineMetadata(Metadata.resource, new ElementConfigResource(), target);
};
return target ? deco(target) : deco;
}
return {
setters: [function (_coreJs) {
core = _coreJs['default'];
}, function (_aureliaMetadata) {
Metadata = _aureliaMetadata.Metadata;
Decorators = _aureliaMetadata.Decorators;
}, function (_bindableProperty) {
BindableProperty = _bindableProperty.BindableProperty;
}, function (_children) {
ChildObserver = _children.ChildObserver;
}, function (_elementConfig) {
ElementConfigResource = _elementConfig.ElementConfigResource;
}, function (_viewStrategy) {
ViewStrategy = _viewStrategy.ViewStrategy;
UseViewStrategy = _viewStrategy.UseViewStrategy;
NoViewStrategy = _viewStrategy.NoViewStrategy;
}, function (_htmlBehavior) {
HtmlBehaviorResource = _htmlBehavior.HtmlBehaviorResource;
}],
execute: function () {
Decorators.configure.parameterizedDecorator('behavior', behavior);
Decorators.configure.parameterizedDecorator('customElement', customElement);
Decorators.configure.parameterizedDecorator('customAttribute', customAttribute);
Decorators.configure.simpleDecorator('templateController', templateController);
Decorators.configure.parameterizedDecorator('bindable', bindable);
Decorators.configure.simpleDecorator('dynamicOptions', dynamicOptions);
Decorators.configure.parameterizedDecorator('syncChildren', syncChildren);
Decorators.configure.simpleDecorator('useShadowDOM', useShadowDOM);
Decorators.configure.simpleDecorator('skipContentProcessing', skipContentProcessing);
Decorators.configure.simpleDecorator('containerless', containerless);
Decorators.configure.parameterizedDecorator('viewStrategy', useView);
Decorators.configure.parameterizedDecorator('useView', useView);
Decorators.configure.simpleDecorator('noView', noView);
Decorators.configure.simpleDecorator('elementConfig', elementConfig);
}
};
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL3RlbXBsYXRpbmcvc3JjL2RlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7c0JBY2dCLFFBQVE7OzJCQWFSLGFBQWE7OzZCQVViLGVBQWU7O2dDQVdmLGtCQUFrQjs7c0JBV2xCLFFBQVE7OzRCQThCUixjQUFjOzswQkFXZCxZQUFZOzswQkFTWixZQUFZOzttQ0FXWixxQkFBcUI7OzJCQVdyQixhQUFhOzswQkFXYixZQUFZOztxQkFRWixPQUFPOztvQkFNUCxNQUFNOzsyQkFVTixhQUFhOztBQTlKN0IsV0FBUyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO0FBQ3hDLFFBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUN0QixZQUFNLElBQUksS0FBSyxRQUFLLElBQUksMEJBQW9CLElBQUksdUZBQW9GLENBQUE7S0FDckk7R0FDRjs7QUFFTSxXQUFTLFFBQVEsQ0FBQyxRQUFRLEVBQUM7QUFDaEMsV0FBTyxVQUFTLE1BQU0sRUFBQztBQUNyQixVQUFHLFFBQVEsWUFBWSxvQkFBb0IsRUFBQztBQUMxQyxlQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO09BQzdELE1BQUk7QUFDSCxZQUFJLFFBQVEsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDeEYsY0FBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7T0FDbkM7S0FDRixDQUFBO0dBQ0Y7O0FBSU0sV0FBUyxhQUFhLENBQUMsSUFBSSxFQUFDO0FBQ2pDLHdCQUFvQixDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0FBQzdDLFdB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QyxTQUFTLENBQUMsZUFBZSxDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQyIsImZpbGUiOiIvVXNlcnMvRWlzZW5iZXJnRWZmZWN0L0RvY3VtZW50cy9HaXRIdWIvVGhlIER1cmFuZGFsIFByb2plY3QvYXVyZWxpYS90ZW1wbGF0aW5nL3NyYy9kZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvcmUgZnJvbSAnY29yZS1qcyc7XG5pbXBvcnQge01ldGFkYXRhLCBEZWNvcmF0b3JzfSBmcm9tICdhdXJlbGlhLW1ldGFkYXRhJztcbmltcG9ydCB7QmluZGFibGVQcm9wZXJ0eX0gZnJvbSAnLi9iaW5kYWJsZS1wcm9wZXJ0eSc7XG5pbXBvcnQge0NoaWxkT2JzZXJ2ZXJ9IGZyb20gJy4vY2hpbGRyZW4nO1xuaW1wb3J0IHtFbGVtZW50Q29uZmlnUmVzb3VyY2V9IGZyb20gJy4vZWxlbWVudC1jb25maWcnO1xuaW1wb3J0IHtWaWV3U3RyYXRlZ3ksIFVzZVZpZXdTdHJhdGVneSwgTm9WaWV3U3RyYXRlZ3l9IGZyb20gJy4vdmlldy1zdHJhdGVneSc7XG5pbXBvcnQge0h0bWxCZWhhdmlvclJlc291cmNlfSBmcm9tICcuL2h0bWwtYmVoYXZpb3InO1xuXG5mdW5jdGlvbiB2YWxpZGF0ZUJlaGF2aW9yTmFtZShuYW1lLCB0eXBlKSB7XG4gIGlmICgvW0EtWl0vLnRlc3QobmFtZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYCcke25hbWV9JyBpcyBub3QgYSB2YWxpZCAke3R5cGV9IG5hbWUuICBVcHBlci1jYXNlIGxldHRlcnMgYXJlIG5vdCBhbGxvd2VkIGJlY2F1c2UgdGhlIERPTSBpcyBub3QgY2FzZS1zZW5zaXRpdmUuYClcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYmVoYXZpb3Iob3ZlcnJpZGUpe1xuICByZXR1cm4gZnVuY3Rpb24odGFyZ2V0KXtcbiAgICBpZihvdmVycmlkZSBpbnN0YW5jZW9mIEh0bWxCZWhhdmlvclJlc291cmNlKXtcbiAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoTWV0YWRhdGEucmVzb3VyY2UsIG92ZXJyaWRlLCB0YXJnZXQpO1xuICAgIH1lbHNle1xuICAgICAgdmFyIHJlc291cmNlID0gTWV0YWRhdGEuZ2V0T3JDcmVhdGVPd24oTWV0YWRhdGEucmVzb3VyY2UsIEh0bWxCZWhhdmlvclJlc291cmNlLCB0YXJnZXQpO1xuICAgICAgT2JqZWN0LmFzc2lnbihyZXNvdXJjZSwgb3ZlcnJpZGUpO1xuICAgIH1cbiAgfVxufVxuXG5EZWNvcmF0b3JzLmNvbmZpZ3VyZS5wYXJhbWV0ZXJpemVkRGVjb3JhdG9yKCdiZWhhdmlvcicsIGJlaGF2aW9yKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGN1c3RvbUVsZW1lbnQobmFtZSl7XG4gIHZhbGlkYXRlQmVoYXZpb3JOYW1lKG5hbWUsICdjdXN0b20gZWxlbWVudCcpO1xuICByZXR1cm4gZnVuY3Rpb24odGFyZ2V0KXtcbiAgICB2YXIgcmVzb3VyY2UgPSBNZXRhZGF0YS5nZXRPckNyZWF0ZU93bihNZXRhZGF0YS5yZXNvdXJjZSwgSHRtbEJlaGF2aW9yUmVzb3VyY2UsIHRhcmdldCk7XG4gICAgcmVzb3VyY2UuZWxlbWVudE5hbWUgPSBuYW1lO1xuICB9XG59XG5cbkRlY29yYXRvcnMuY29uZmlndXJlLnBhcmFtZXRlcml6ZWREZWNvcmF0b3IoJ2N1c3RvbUVsZW1lbnQnLCBjdXN0b21FbGVtZW50KTtcblxuZXhwb3J0IGZ1bmN0aW9uIGN1c3RvbUF0dHJpYnV0ZShuYW1lLCBkZWZhdWx0QmluZGluZ01vZGUpe1xuICB2YWxpZGF0ZUJlaGF2aW9yTmFtZShuYW1lLCAnY3VzdG9tIGF0dHJpYnV0ZScpO1xuICByZXR1cm4gZnVuY3Rpb24odGFyZ2V0KXtcbiAgICB2YXIgcmVzb3VyY2UgPSBNZXRhZGF0YS5nZXRPckNyZWF0ZU93bihNZXRhZGF0YS5yZXNvdXJjZSwgSHRtbEJlaGF2aW9yUmVzb3VyY2UsIHRhcmdldCk7XG4gICAgcmVzb3VyY2UuYXR0cmlidXRlTmFtZSA9IG5hbWU7XG4gICAgcmVzb3VyY2UuYXR0cmlidXRlRGVmYXVsdEJpbmRpbmdNb2RlID0gZGVmYXVsdEJpbmRpbmdNb2RlO1xuICB9XG59XG5cbkRlY29yYXRvcnMuY29uZmlndXJlLnBhcmFtZXRlcml6ZWREZWNvcmF0b3IoJ2N1c3RvbUF0dHJpYnV0ZScsIGN1c3RvbUF0dHJpYnV0ZSk7XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZW1wbGF0ZUNvbnRyb2xsZXIodGFyZ2V0KXtcbiAgdmFyIGRlY28gPSBmdW5jdGlvbih0YXJnZXQpe1xuICAgIHZhciByZXNvdXJjZSA9IE1ldGFkYXRhLmdldE9yQ3JlYXRlT3duKE1ldGFkYXRhLnJlc291cmNlLCBIdG1sQmVoYXZpb3JSZXNvdXJjZSwgdGFyZ2V0KTtcbiAgICByZXNvdXJjZS5saWZ0c0NvbnRlbnQgPSB0cnVlO1xuICB9O1xuXG4gIHJldHVybiB0YXJnZXQgPyBkZWNvKHRhcmdldCkgOiBkZWNvO1xufVxuXG5EZWNvcmF0b3JzLmNvbmZpZ3VyZS5zaW1wbGVEZWNvcmF0b3IoJ3RlbXBsYXRlQ29udHJvbGxlcicsIHRlbXBsYXRlQ29udHJvbGxlcik7XG5cbmV4cG9ydCBmdW5jdGlvbiBiaW5kYWJsZShuYW1lT3JDb25maWdPclRhcmdldCwga2V5LCBkZXNjcmlwdG9yKXtcbiAgdmFyIGRlY28gPSBmdW5jdGlvbih0YXJnZXQsIGtleSwgZGVzY3JpcHRvcil7XG4gICAgdmFyIGFjdHVhbFRhcmdldCA9IGtleSA/IHRhcmdldC5jb25zdHJ1Y3RvciA6IHRhcmdldCwgLy9pcyBpdCBvbiBhIHByb3BlcnR5IG9yIGEgY2xhc3M/XG4gICAgICAgIHJlc291cmNlID0gTWV0YWRhdGEuZ2V0T3JDcmVhdGVPd24oTWV0YWRhdGEucmVzb3VyY2UsIEh0bWxCZWhhdmlvclJlc291cmNlLCBhY3R1YWxUYXJnZXQpLFxuICAgICAgICBwcm9wO1xuXG4gICAgaWYoa2V5KXsgLy9pcyBpdCBvbiBhIHByb3BlcnR5IG9yIGEgY2xhc3M/XG4gICAgICBuYW1lT3JDb25maWdPclRhcmdldCA9IG5hbWVPckNvbmZpZ09yVGFyZ2V0IHx8IHt9O1xuICAgICAgbmFtZU9yQ29uZmlnT3JUYXJnZXQubmFtZSA9IGtleTtcbiAgICB9XG5cbiAgICBwcm9wID0gbmV3IEJpbmRhYmxlUHJvcGVydHkobmFtZU9yQ29uZmlnT3JUYXJnZXQpO1xuICAgIHJldHVybiBwcm9wLnJlZ2lzdGVyV2l0aChhY3R1YWxUYXJnZXQsIHJlc291cmNlLCBkZXNjcmlwdG9yKTtcbiAgfTtcblxuICBpZighbmFtZU9yQ29uZmlnT3JUYXJnZXQpeyAvL3BsYWNlZCBvbiBwcm9wZXJ0eSBpbml0aWFsaXplciB3aXRoIHBhcmVuc1xuICAgIHJldHVybiBkZWNvO1xuICB9XG5cbiAgaWYoa2V5KXsgLy9wbGFjZWQgb24gYSBwcm9wZXJ0eSBpbml0aWFsaXplciB3aXRob3V0IHBhcmVuc1xuICAgIHZhciB0YXJnZXQgPSBuYW1lT3JDb25maWdPclRhcmdldDtcbiAgICBuYW1lT3JDb25maWdPclRhcmdldCA9IG51bGw7XG4gICAgcmV0dXJuIGRlY28odGFyZ2V0LCBrZXksIGRlc2NyaXB0b3IpO1xuICB9XG5cbiAgcmV0dXJuIGRlY287IC8vcGxhY2VkIG9uIGEgY2xhc3Ncbn1cblxuRGVjb3JhdG9ycy5jb25maWd1cmUucGFyYW1ldGVyaXplZERlY29yYXRvcignYmluZGFibGUnLCBiaW5kYWJsZSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBkeW5hbWljT3B0aW9ucyh0YXJnZXQpe1xuICB2YXIgZGVjbyA9IGZ1bmN0aW9uKHRhcmdldCl7XG4gICAgdmFyIHJlc291cmNlID0gTWV0YWRhdGEuZ2V0T3JDcmVhdGVPd24oTWV0YWRhdGEucmVzb3VyY2UsIEh0bWxCZWhhdmlvclJlc291cmNlLCB0YXJnZXQpO1xuICAgIHJlc291cmNlLmhhc0R5bmFtaWNPcHRpb25zID0gdHJ1ZTtcbiAgfTtcblxuICByZXR1cm4gdGFyZ2V0ID8gZGVjbyh0YXJnZXQpIDogZGVjbztcbn1cblxuRGVjb3JhdG9ycy5jb25maWd1cmUuc2ltcGxlRGVjb3JhdG9yKCdkeW5hbWljT3B0aW9ucycsIGR5bmFtaWNPcHRpb25zKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHN5bmNDaGlsZHJlbihwcm9wZXJ0eSwgY2hhbmdlSGFuZGxlciwgc2VsZWN0b3Ipe1xuICByZXR1cm4gZnVuY3Rpb24odGFyZ2V0KXtcbiAgICB2YXIgcmVzb3VyY2UgPSBNZXRhZGF0YS5nZXRPckNyZWF0ZU93bihNZXRhZGF0YS5yZXNvdXJjZSwgSHRtbEJlaGF2aW9yUmVzb3VyY2UsIHRhcmdldCk7XG4gICAgcmVzb3VyY2UuY2hpbGRFeHByZXNzaW9uID0gbmV3IENoaWxkT2JzZXJ2ZXIocHJvcGVydHksIGNoYW5nZUhhbmRsZXIsIHNlbGVjdG9yKTtcbiAgfVxufVxuXG5EZWNvcmF0b3JzLmNvbmZpZ3VyZS5wYXJhbWV0ZXJpemVkRGVjb3JhdG9yKCdzeW5jQ2hpbGRyZW4nLCBzeW5jQ2hpbGRyZW4pO1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlU2hhZG93RE9NKHRhcmdldCl7XG4gIHZhciBkZWNvID0gZnVuY3Rpb24odGFyZ2V0KXtcbiAgICB2YXIgcmVzb3VyY2UgPSBNZXRhZGF0YS5nZXRPckNyZWF0ZU93bihNZXRhZGF0YS5yZXNvdXJjZSwgSHRtbEJlaGF2aW9yUmVzb3VyY2UsIHRhcmdldCk7XG4gICAgcmVzb3VyY2UudGFyZ2V0U2hhZG93RE9NID0gdHJ1ZTtcbiAgfTtcblxuICByZXR1cm4gdGFyZ2V0ID8gZGVjbyh0YXJnZXQpIDogZGVjbztcbn1cblxuRGVjb3JhdG9ycy5jb25maWd1cmUuc2ltcGxlRGVjb3JhdG9yKCd1c2VTaGFkb3dET00nLCB1c2VTaGFkb3dET00pO1xuXG5leHBvcnQgZnVuY3Rpb24gc2tpcENvbnRlbnRQcm9jZXNzaW5nKHRhcmdldCl7XG4gIHZhciBkZWNvID0gZnVuY3Rpb24odGFyZ2V0KXtcbiAgICB2YXIgcmVzb3VyY2UgPSBNZXRhZGF0YS5nZXRPckNyZWF0ZU93bihNZXRhZGF0YS5yZXNvdXJjZSwgSHRtbEJlaGF2aW9yUmVzb3VyY2UsIHRhcmdldCk7XG4gICAgcmVzb3VyY2Uuc2tpcENvbnRlbnRQcm9jZXNzaW5nID0gdHJ1ZTtcbiAgfTtcblxuICByZXR1cm4gdGFyZ2V0ID8gZGVjbyh0YXJnZXQpIDogZGVjbztcbn1cblxuRGVjb3JhdG9ycy5jb25maWd1cmUuc2ltcGxlRGVjb3JhdG9yKCdza2lwQ29udGVudFByb2Nlc3NpbmcnLCBza2lwQ29udGVudFByb2Nlc3NpbmcpO1xuXG5leHBvcnQgZnVuY3Rpb24gY29udGFpbmVybGVzcyh0YXJnZXQpe1xuICB2YXIgZGVjbyA9IGZ1bmN0aW9uKHRhcmdldCl7XG4gICAgdmFyIHJlc291cmNlID0gTWV0YWRhdGEuZ2V0T3JDcmVhdGVPd24oTWV0YWRhdGEucmVzb3VyY2UsIEh0bWxCZWhhdmlvclJlc291cmNlLCB0YXJnZXQpO1xuICAgIHJlc291cmNlLmNvbnRhaW5lcmxlc3MgPSB0cnVlO1xuICB9O1xuXG4gIHJldHVybiB0YXJnZXQgPyBkZWNvKHRhcmdldCkgOiBkZWNvO1xufVxuXG5EZWNvcmF0b3JzLmNvbmZpZ3VyZS5zaW1wbGVEZWNvcmF0b3IoJ2NvbnRhaW5lcmxlc3MnLCBjb250YWluZXJsZXNzKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZpZXdTdHJhdGVneShzdHJhdGVneSl7XG4gIHJldHVybiBmdW5jdGlvbih0YXJnZXQpe1xuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoVmlld1N0cmF0ZWd5Lm1ldGFkYXRhS2V5LCBzdHJhdGVneSwgdGFyZ2V0KTtcbiAgfVxufVxuXG5EZWNvcmF0b3JzLmNvbmZpZ3VyZS5wYXJhbWV0ZXJpemVkRGVjb3JhdG9yKCd2aWV3U3RyYXRlZ3knLCB1c2VWaWV3KTtcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVZpZXcocGF0aCl7XG4gIHJldHVybiB2aWV3U3RyYXRlZ3kobmV3IFVzZVZpZXdTdHJhdGVneShwYXRoKSk7XG59XG5cbkRlY29yYXRvcnMuY29uZmlndXJlLnBhcmFtZXRlcml6ZWREZWNvcmF0b3IoJ3VzZVZpZXcnLCB1c2VWaWV3KTtcblxuZXhwb3J0IGZ1bmN0aW9uIG5vVmlldyh0YXJnZXQpe1xuICB2YXIgZGVjbyA9IGZ1bmN0aW9uKHRhcmdldCl7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShWaWV3U3RyYXRlZ3kubWV0YWRhdGFLZXksIG5ldyBOb1ZpZXdTdHJhdGVneSgpLCB0YXJnZXQpO1xuICB9O1xuXG4gIHJldHVybiB0YXJnZXQgPyBkZWNvKHRhcmdldCkgOiBkZWNvO1xufVxuXG5EZWNvcmF0b3JzLmNvbmZpZ3VyZS5zaW1wbGVEZWNvcmF0b3IoJ25vVmlldycsIG5vVmlldyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbGVtZW50Q29uZmlnKHRhcmdldCl7XG4gIHZhciBkZWNvID0gZnVuY3Rpb24odGFyZ2V0KXtcbiAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKE1ldGFkYXRhLnJlc291cmNlLCBuZXcgRWxlbWVudENvbmZpZ1Jlc291cmNlKCksIHRhcmdldCk7XG4gIH07XG5cbiAgcmV0dXJuIHRhcmdldCA/IGRlY28odGFyZ2V0KSA6IGRlY287XG59XG5cbkRlY29yYXRvcnMuY29uZmlndXJlLnNpbXBsZURlY29yYXRvcignZWxlbWVudENvbmZpZycsIGVsZW1lbnRDb25maWcpO1xuIl19 |